solution to critical section problem in os